nl=-99.9999999999999
gen=-0.0 gen_max=0.0
batt=-99.9999999999999 batt_min=-99.9999999999999 batt_max=0.0
shed=-0.0 spill=-1.4210854715202e-14
Decision tree: dt=false dtcase=DT_spill
nl_neg=true nl_l_batt_min=false nl_le_batt_max=true nlmbatt_le_gen_max=true
Operating constraints: op=false
gen_ok=true batt_ok=false shed_ok=true spill_ok=false balance_ok=false (deltaP=1.4210854715202e-14)
----------
I guess this is due to rounding errors in floating-point numbers :( It has been pointed out in several discussions on minizinc with floating-points and constraint solvers.
BTW, I used the following annotation for search.
solve :: float_search([nl, gen, gen_max, batt, batt_min, batt_max, shed, spill],
1e-16, most_constrained, indomain_split) satisfy;